1. Field of Invention
The present invention relates generally to internet protocol (IP) equal cost multiple paths. More particularly, the present invention relates to utilizing payloads of packets to indicate nodes traversed by each of a plurality of equal cost paths between a source point and a destination point such that the route taken by each equal cost path may be ascertained by the destination point.
2. Description of the Related Art
Equal cost multi-path (ECMP) is an Internet Protocol (IP) routing technique that is used to direct packets along multiple paths of equal cost. Equal cost paths are generally paths that traverse the same number of hops, but the identification of equal cost paths may depend upon other parameters, e.g., bandwidth. Some routing protocols effectively measure the cost of a path by counting the number of traversed hops. However, other metrics may be use in order to compute the cost of paths. Metrics may include numerical values assigned to each link that a path traverses such that the cost of the path is the sum of the cost of substantially all links belonging to the path. In ECMP, a router generally determines which equal cost path to use to route a packet from a source to a destination using a typically non-predictable load-balancing mechanism.
FIG. 1A is a diagrammatic representation of a core network with a plurality of equal cost paths between a source and a destination. In a network 100 between a source 104 and a destination 108, there may be any number of equal cost paths. By way of example, network 100 includes four paths which have equal costs. A first path traverses nodes 112a, 112b, 112d, a second path traverses nodes 112a, 112c, 112d, a third path traverses nodes 112e, 112f, 112g, and a fourth path traverses nodes 112e, 112f, 12h. 
Typically, when source 104 sends a packet to destination 108, the packet may be sent on any path. The selection of an appropriate path may be made based on factors such as load balancing. Further, destination 108 may not necessarily be aware which path the packet is received on, and may only be aware of the final node 112d, 112g, or 112h the packet is received from. As shown in FIG. 1B, destination 108 receives a packet 120 that is transmitted from source 104, and destination 108 may be unaware of which equal cost path is actually traversed by packet 120.
As previously mentioned, the selection of an equal cost path from among a plurality of equal cost paths for use in transmitting packets from a source to a destination may be based on load balancing requirements. Metrics such as a per-destination or a per-packet metric may be used to balance the load on equal cost paths.
A service level agreement (SLA) may be made between a subscriber and a service provider to specify a particular level of service to be provided by the service provider to the subscriber. Any violation of conditions of an SLA may lead to inconvenience or worse for a subscriber. An SLA may use metrics that involve network characteristics that may be used to specify an acceptable level of service. Such network characteristics may include, but are not limited to, jitter, packet loss, and delays. Jitter, packet loss, and delays may be different for different equal cost paths. Typically, the selection of an equal cost path does not account for network characteristics. As the jitter, packet loss, and delays associated with each equal cost path may vary greatly, the selection of some equal cost paths based primarily or completely on load balancing requirements may result in a violation of an SLA.
Therefore, what is needed is a method and an apparatus which allows each equal cost path of a plurality of equal cost paths to be characterized in terms of SLA metrics such that the selection of an equal cost path for use to transmit packets may account for an SLA. That is, what is desired is a system that efficiently allows different equal costs paths between a given source and a given destination to be identified and characterized in terms of network characteristics such as jitter, packet loss, and delay.